package ShuJuJieGou;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;

public class Zhan_DuiLie {
    public static void main(String[] args){
        Solution so=new Solution();
        so.removeDuplicates("abbaca");
    }
}

class Solution {
    public String removeDuplicates(String s) {
        Stack<String> stack=new Stack<>();
        String[] str=s.split("");
        for ( int i=0;i<s.length();i++ ){
            if ( stack.isEmpty() ){
                stack.push(str[i]);
                continue;
            }
            if ( stack.peek().equals(str[i])&&!stack.isEmpty() ){
                stack.pop();
            }else{
                stack.push(str[i]);
            }
        }
        String res=new String();
        for ( int i=0;i<stack.size();i++ ){
            res+=stack.get(i);
        }
        return res;
    }
}

//class MyStack {
//    Queue<Integer> queue;
//    Queue<Integer> helpQue;
//    public MyStack() {
//        queue=new LinkedList<>();
//        helpQue=new LinkedList<>();
//    }
//
//    public void push(int x) {
//
//    }
//
//    public int pop() {
//
//    }
//
//    public int top() {
//
//    }
//
//    public boolean empty() {
//
//    }
//}

//class MyQueue {
//    Stack<Integer> stack;
//    Stack<Integer> helpSta;
//    public MyQueue() {
//        stack=new Stack();
//        helpSta=new Stack();
//    }
//
//    public void push(int x) {
//        stack.push(x);
////        for ( int i=0;i<helpSta.size();i++ ){
////            stack.push()
////        }
//    }
//
//    public int pop() {
//        for ( int i=stack.size()-1;i>=0;i-- ){
//            int x=stack.pop();
//            helpSta.push(x);
//        }
//        int y=helpSta.pop();
//        for ( int i=helpSta.size()-1;i>=0;i-- ){
//            int x=helpSta.pop();
//            stack.push(x);
//        }
//        return y;
//    }
//
//    public int peek() {
//        for ( int i=stack.size()-1;i>=0;i-- ){
//            int x=stack.pop();
//            helpSta.push(x);
//        }
//        int y=helpSta.peek();
//        for ( int i=helpSta.size()-1;i>=0;i-- ){
//            int x=helpSta.pop();
//            stack.push(x);
//        }
//        return y;
//    }
//
//    public boolean empty() {
//        return stack.isEmpty();
//    }
//}

